Просмотр полной версии : Предпологается наличие объекта
Только начал изучать ява скрипт
при нажатие на изображение ошибка "предпологает наличие объекта " подскажите где ошибка?
<html>
<head>
<script>
function Xmove(){
var xinetrval = setInterval ("moveImg()",20);
i = 30;
function moveImg() {
alert ("sdaf");
if (i<100){
document.all.oneImg1.style.top=i;
alert(i);
i=i+5;
}
else
clearInterval(xinetrval)
} }
</script>
</head>
<body>
<IMG ID=oneImg1 src="D:/www/java/2.jpg" style="position:absolute; top:30px; left:20px; z-index=1"; onclick="Xmove()"; >
</body>
</html>
предполагаю что здесь: document.all.oneImg1.style.top=i;
замените на:document.getElementById('oneImg1').style.top= i;
и еще <IMG ID=oneImg1 src="D:/www/java/2.jpg" style="position:absolute; top:30px; left:20px; z-index=1"; onclick="Xmove()"; >
писать нельзя, вы ставите точку с запятой где их быть не должно и еще после z-index должно стоять двоеточие, а не равно и id лучше писать в двойных кавычках: <IMG ID="oneImg1" src="D:/www/java/2.jpg" style="position:absolute; top:30px; left:20px; z-index:1" onclick="Xmove()">
сделал все выше указаные изменения, ошибка осталасась прежней :(
<html>
<head>
<script type="text/javascript">
function Xmove()
{
var i = 30;
var xinetrval = setInterval(function(){ i<100 ? document.all.oneImg1.style.top=i=i+5 : clearInterval(xinetrval) },20);
}
</script>
</head>
<body>
<IMG id="oneImg1" src="D:/www/java/2.jpg" style="position:absolute; top:30px; left:20px; z-index:1" onclick="Xmove()">
</body>
</html>
Skipp,
используете сокращенную запись ?: и тут же пишите вот это:
document.all.oneImg1.style.top=i=i+5
Это говнокод.
Хотя это все равно останется говнокодом, но вы его делаете еще и сложным для понимания.
Gozar,
Объясните почему это говнокод, спорить не буду просто интересно! Может что нового узнаю.
А насчёт сложного, не спорю. Но если бы автор хотел понять, то попросил бы разжевать код.
1. document.all говнокод
2. = i = i + 5 говнокод
3. и вообще это все говнокод потому что:
http://javascript.ru/blog/Andrej-Paranichev/Osnovy-programmnoj-animacii-JavaScript#timeout-interval
Насчёт первого соглашусь, знаю ответ.
А вот остальное объясните пожалуйста, очень интересно, что там такого не так? Без шуток.
Skipp,
я уже объяснил, разжёвывать я не буду, скучно.
Gozar,
ну тогда насчёт 2 и 3 я останусь при своём мнении.
А вообще жаль, думал узнаю что-то полезное.
Может кто-нибудь другой тогда объяснит, пожалуйста.
Skipp,
Вы разучились читать?
Я дал вам ссылку вот и читайте. Там всё разжевано.
И идите учить операторы присваивания += например.
Gozar,
В данной ссылке, я не нашёл ничего полезного по данной теме.
А про операторы присваивания я знаю. Но не понял почему
i=i+5; - говнокод
i+=5; - а это нет
Разница в результате? Или из-за того что код сократился на 1 символ?
Skipp,
Вставьте перед тегом <html> строку:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> и заставьте ваш код работать снова.
Во, вот за это спасибо. ошибку понял.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
function Xmove(i)
{
var xinetrval = setInterval(function(){i<100 ? document.getElementById('oneImg1').style.top=(i+=5 ) + "px" : clearInterval(xinetrval) },20);
}
</script>
</head>
<body>
<img id="oneImg1" src="http://javascript.ru/forum/image.php?u=11&dateline=1271099142" style="position:absolute; top:30px; left:20px; z-index:1" onclick="Xmove(30)" alt="">
</body>
</html>
Улучшил говнокод :)
Skipp,
Это тоже говнокод, измените на onclick="Xmove(130)"
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
function Xmove(elem, end)
{
var xinetrval = setInterval(function(){elem.offsetTop<end ? elem.style.top=(elem.offsetTop + 5) + "px" : clearInterval(xinetrval) },20);
}
</script>
</head>
<img src="http://javascript.ru/forum/image.php?u=11&dateline=1271099142" style="position:absolute;" onclick="Xmove(this, 1000)">
</body>
</html>
апдейт комплите говнокоде =)
работает если position = absolute и если второй параметр >= 10.
Еще есть ошибки?:)
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot